Peripheral Component Interconnect Express (also referred to as PCI Express or PCIe) is a computer expansion interconnect standard designed to replace the older PCI, PCI-X, and AGP bus standards. PCIe has numerous improvements over the aforementioned bus standards, including higher maximum system throughput, lower I/O pin count and smaller physical footprint, better performance-scaling for devices, a more detailed error detection and reporting mechanism, and native hot-plug functionality. More recent revisions of the PCIe standard support hardware I/O virtualization.
PCIe includes access control services (ACS) that allow peer-to-peer transactions, where traffic between peer endpoints can be managed by a physical switch port, rather than through a root complex. ACS provides a mechanism by which a Peer-to-Peer PCIe transaction can be forced to go up through a PCIe Root Complex, providing a kind of gate-keeper to prevent unauthorized transactions. This scheme breaks down, however, when traffic flows through multiple switches and when a single physical device at a port instantiates multiple devices or “virtual functions” that may need distinct access privileges, for fault containment and security.